import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
//定义解析路径的方法
let _resolve = (dir) => {
  return path.resolve(dir)
}
//开发环境下内置Node服务器 帮助我们去代理数据

//打包构建之后没有代理服务器 需要后台协助配置nginx进行代理

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  //获取环境变量
  //1.加载的环境文件的名字 2.环境文件对应的目录 3.环境变量的前缀,空字符串表示可以读取任意前缀不需要VITE_前缀
  let env = loadEnv(mode, process.cwd(), '')
  // console.log('env--', env)
  //运行的项目指令是什么
  // console.log('command--', command)
  //运行项目的模式是什么
  // console.log('mode--', mode)
  return {
    build: {
      //配置打包后的文件夹名称
      outDir: 'dist' + "-" + mode,
    },
    plugins: [vue()],
    //配置资源路径
    base: "./",
    server: {
      //项目的启动端口
      port: 8080,
      //是否自动打开浏览器
      open: true,
      //是否开启https
      https: false,
      //是否开启代理
      proxy: {
        //当遇到以/api开头的请求路径时，将其转换成target的值
        '/api': {
          //代理的目标服务器地址,不可以包含路径部分
          target: env.VITE_APP_BASEURL,
          //是否把路径中的/api去掉
          rewrite: path => path.replace(/^\/api/, "")
        }
      }
    },
    resolve: {
      //别名配置
      alias: {
        '@': _resolve('src'),
        "components": _resolve('src/components'),
        "utils": _resolve('src/utils')
      }
    }
  }
})

//例如,服务器给的接口是:https://chst.vip/v1/home/multidata

//以后代码发请求 fetch('/api/v1/home/multidata')=>解析成 https://chst.vip/v1/home/multidata
